Cloudflare ZeroTrustでBrowser Isolationを実装してブラウジング中の操作を制限してみた
Browser Isolation(ブラウザ分離)とは
ブラウザの分離は、Webページを表示するユーザーデバイスからWebページを読み込むプロセスを分離することで、ブラウジング活動を安全に保つ技術です。この方法により、潜在的に悪意のあるWebページのコードはユーザーのデバイス上で実行されないため、マルウェアの感染や、その他のサイバー攻撃がユーザーのデバイスと内部ネットワークの両方に影響を与えることを防ぎます。
出典:ブラウザ分離とは?
通常、ユーザーが閲覧するWebページコンテンツは、直接ユーザー端末で読み込み/実行を行います。
しかし、読み込まれたページに悪意のある動的コンテンツが含まれていた場合、デバイスのウィルス感染やそこから内部ネットワークへの侵入といった危険が潜んでいます。そのため、ゼロトラストの観点ではブラウザ分離が推奨されています。
Browser Isolationとは、Webページコンテンツの読み込み/実行をユーザーデバイスではなくユーザーから分離されたブラウザで行う技術です。ユーザーをマルウェア感染やゼロデイ攻撃等から保護することが出来ます。
Cloudflareからも、Browser Isolationの機能が提供されています。 Browser Isolationを実装することで、リスクの高いブラウジング中のファイル送信やキーボード入力などの操作を制限することが可能です。
今回はこちらの機能を実装して行きたいと思います。
やってみた
Cloudflare Zero Trustを構成するサービスの一つに、Cloudflare Gatewayというものがあります。
Cloudflare GatewayはCloudflareが提供するSWGで、DNS、ネットワーク、HTTP等のトラフィックを検査し、ポリシーに基づいて特定の要素をブロックすることが可能です。
Browser IsolationはこのCloudflare GatewayのHTTPPポリシーを通じて有効になります。
HTTPポリシーを作成すると、トラフィックを検査し、ポリシーに基づいた特定のWEBサイト、IPアドレス、ファイルタイプなどをブロックすることが可能になります。
このHTTPポリシーの中にBrowser Isolation用のポリシーを作成していきます。
※Browser Isolationの設定には、デバイスのCloudflareへの接続方法によっていくつか種類があるのですが、今回はWARPクライアントとCloudflareルート証明書をデバイスにインストールしている場合を想定しています。
WARPのインストールやCloudflareルート証明書のインストール方法については下記ブログに詳しく記載がありますので、ぜひこちらも併せてご覧ください。
Browser Isolation用HTTPポリシーの作成
では、Browser Isolation用のポリシーを作成していきます。
Cloudflare Zerotrasuのコンソールから、Gateway > Firewall Policies > HTTPに移動し、Add a policyから新しいポリシーを作成します。
分かりやすいポリシー名を付けておきましましょう。 今回は「Test Browser Isolation」としておきます。
次に、分離するWEBサイトまたはコンテンツの指定をします。
HTTPポリシーは、ポリシー範囲を決定する論理式とアクションで構成されています。
まずは、ポリシー範囲を決定するために、Selector/Operator/Valueをそれぞれ記入していきます。
今回は分かりやすいものがよかったので、ポリシーの範囲は「example.comを閲覧する場合にのみ」にしておきます。
次にアクションを選択します。
Browser Isolationを実装する場合は、Isolateを選択します。
Do Not Isolateを選択すると、先に選択したポリシー範囲のみは分離せずに、通常のブラウジングを行う設定にすることが可能です。
その後、Configure policy settingsで分離後にどういった操作を制限するかを決定します。
ここで選択できる操作の制御配下の通りです。
- Disable clipboard redirection - 分離されたコンテンツをリモートブラウザとローカルブラウザ間でコピペするのを禁止する
- Disable copy/past - 分離されたコンテンツのコピペを禁止する(こちらは分離されたWEBサイト間でのコピペまで禁止できるので、より機密性の高いアプリケーションでのクリップボードの使用を禁止したい場合はこちらを選択します。)
- Disable file downloads - リモートブラウザからファイルをダウンロードすることを禁止する
- Disable file uploads - リモートブラウザ上のWEBページにファイルをアップロードすることを禁止する
- Disable keyboard - リモートWEBページへのキーボード入力を禁止する(マウス入力は利用可能)
- Disable printing - WEBページを印刷することを禁止する
※上記ではリモートブラウザ上へのアップロード/ダウンロードは禁止できません。禁止したい場合はHTTPポリシーのSelectorでUpload Mime Type/Download Mime Typeを使ってポリシーを作成します。
今回は、コピペの禁止とプリントの禁止にチェックを入れておきました。Create Policyでポリシーを作成します。
動作確認
では、ブラウザは分離されるのか確認していきます。(今回はChromeを使用します。)
まず、通常の挙動を確認するために、先ほどのポリシーを無効化した状態でexample.comにアクセスしていきます。
すると、アドレスバーには「保護されていない通信」と表示されていることが確認できます。
また、右クリックのコンテキストメニューには通常どおりすべてのオプションが含まれています。
通常の挙動が確認出来たところで、Browser Isolation用HTTPポリシーを有効化します。
有効化した状態でexample.comにアクセスしてみると、初めに下記のようなポップアップが表示されました。
独立したブラウザでWEBページを読み込んでくださいという旨の文章でSecure Reloadを促されます。
Secure Reloadをクリックしてみると、再度example.comのページが表示されますが、先ほどとは違いアドレスバーの「保護されていない通信」という表記が消えています。
ここからさらにアドレスバーをクリックして詳細を確認してみると「この接続は保護されています」という表示が出ているのが確認できました。
この通信の保護にはCloudflareルート証明書が使われているはずなので、そこも確認してみます。
Cloudflareの証明書が使われていることが確認できました。
続けて、コンテキストメニューはどうなっているか確認します。
コンテキストメニューは先ほどよりも簡素化され、少なくなっています。
では、ポリシーの設定時に禁止した挙動を行うとどうなるか確認してみます。
まずは、コピペからです。
コピーを行おうとすると、このようなポップアップが表示され、ブロックされました。
次にプリントをしようとすると、同じようにポップアップが表示されブロックされました。
Browser Isolationでは、このように、組織内のユーザーがブラウザ上で行う操作を制限することが出来ます。
使えるポリシー
今回は検証のため、example.comのみをブラウザ分離するようなポリシーを作成しました。
しかし、実際にこのような絞り込み方でBrowser Isolationを行うことはほとんどないと思うので、使えそうなポリシーとそのユースケースをいくつかまとめてみます。
セキュリティリスクのあるものを分離
ポリシーを作成する際に、SelectorでSecurity Risksを選択すると、セキュリティリスクがあるとCloudflare Radarによって判断されたドメインに関して分離することが可能です。
どんなセキュリティリスクを分離するかも選ぶことが出来るので、フィッシングやマルウェアといった特定の脅威からの保護も可能です。
コンテンツカテゴリに基づいた分離
上記のセキュリティリスクと同じようにCloudflare Radarはコンテンツカテゴリの分類も行います。 SelectorでContent Catedoriesを選択し、分離したいカテゴリを選択することが出来ます。
例えば、セキュリティリスクが高いと分類されたWEBページの閲覧の際のみブラウザの分離を行うといったことが可能です。
また、下記画像のような設定をすることで、Cloudflare Raderによって分類がされていないコンテンツについてを分離することも可能です。
まとめ
今回はCloudflareのBrowser Isolation機能についてご紹介しました。
この機能をうまく使えば、ユーザーのパフォーマンスを落とすことなくWEBサイトに潜むセキュリティリスクからデバイスを守ることが出来ます。複雑な設定の必要はなく、HTTPポリシーの設定のみで簡単に導入することが出来るのが嬉しいポイントだと思いました。